home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / share / launchpad-integration / launchpadintegration / main.py < prev    next >
Text File  |  2009-09-24  |  3KB  |  74 lines

  1. import sys
  2. import logging
  3. import optparse
  4. import subprocess
  5.  
  6. from launchpadintegration.packageinfo import PackageInfo
  7. from launchpadintegration.urls import (
  8.     showUrl, getInfoUrl, getTranslateUrl)
  9.  
  10. def main():
  11.     parser = optparse.OptionParser()
  12.     parser.add_option('-p', '--pid', dest='pid', type='int', default=None,
  13.                       metavar="PID", help="Process ID to look up")
  14.     parser.add_option('-f', '--file', dest='filename', default=None,
  15.                       metavar="FILE", help="Filename to look up")
  16.     parser.add_option('-P', '--package', dest='package', default=None,
  17.                       metavar="PACKAGE", help="Package to look up")
  18.     parser.add_option('-x', '--xid', dest='xid', default=None,
  19.                       metavar="XID", help="X Window ID to look up")
  20.     parser.add_option('-d', '--debug', action='store_true', dest='debug',
  21.                       help="Print debugging info")
  22.  
  23.     parser.add_option('-i', '--info', action='store_true', dest='getinfo',
  24.                       help="Show Launchpad information page for package")
  25.     parser.add_option('-t', '--translate', action='store_true',
  26.                       dest='translate',
  27.                       help="Show Launchpad translate page for package")
  28.     parser.add_option('-b', '--bugs', action='store_true',
  29.                       dest='filebug',
  30.                       help="File a bug for package")
  31.  
  32.     (options, args) = parser.parse_args()
  33.  
  34.     logger = logging.getLogger()
  35.     hdlr = logging.StreamHandler(strm=sys.stderr)
  36.     hdlr.setFormatter(logging.Formatter('%(asctime)s %(levelname)s %(message)s'))
  37.     logger.addHandler(hdlr)
  38.     if options.debug:
  39.         logger.setLevel(logging.DEBUG)
  40.     else:
  41.         logger.setLevel(logging.WARN)
  42.  
  43.     if options.pid:
  44.         pkginfo = PackageInfo.fromProcessID(options.pid, logger)
  45.     elif options.filename:
  46.         pkginfo = PackageInfo.fromFilename(options.filename, logger)
  47.     elif options.package:
  48.         pkginfo = PackageInfo.fromPackageName(options.package, logger)
  49.     elif options.xid:
  50.         pkginfo = PackageInfo.fromXID(options.xid, logger)
  51.     else:
  52.         #info = PackageInfo.fromXID(None, logger)
  53.         pkginfo = None
  54.  
  55.     if options.getinfo:
  56.         return showUrl(getInfoUrl(pkginfo), logger)
  57.     elif options.translate:
  58.         return showUrl(getTranslateUrl(pkginfo), logger)
  59.     elif options.filebug:
  60.     args = ['ubuntu-bug']
  61.     if options.pid:
  62.         args.append(str(options.pid))
  63.     else: 
  64.         assert pkginfo.binarypackage, 'need to specify pid or package'
  65.         args.append(pkginfo.binarypackage)
  66.     subprocess.call(args)
  67.     else:
  68.         print 'Name:', pkginfo.binarypackage
  69.         print 'Source:', pkginfo.sourcepackage
  70.         print 'Version:', pkginfo.version
  71.         print 'Arch:', pkginfo.architecture
  72.         sys.stderr.write('show GUI here\n')
  73.         sys.exit(1)
  74.